In recent years, the SDN technique is becoming one of the most popular network technologies, and is a suitable candidate for constructing an enterprise network, a campus network, a data center network and so forth. A core idea behind the SDN is to separate a data plane and a control plane, and to control the network centrally by a remote controller.
In the SDN, network control and network forwarding are separated and managed by a dedicated device. The network forwarding is implemented by a dedicated OpenFlow-based SDN switch device. The network control is implemented by the OpenFlow-based SDN controller, which implements computations for basic network functions, such as topology management, flow table management, device configuration, and so forth.
As illustrated in FIG. 1 showing an example of an SDN architecture in the related art, the SDN includes three OpenFlow (OF) switch devices for communication. All of these three OF switch devices are controlled by one SDN controller through the OpenFlow protocol. The OF switch device 1 and the OF switch device 3 are access switch devices and connected to a host A and a host B respectively; and the OF switch device 2 is an aggregation switch connected to the SDN controller.
When the host A (a physical server or a virtual machine) accesses the SDN network and requests the SDN network to communicate with the host B, the OF switch device 1 determines that it is the first time for receiving data packets on the request, the OF switch device 1 forwards a first one of the data packets to the SDN controller, i.e. reports a packet_in packet to the SDN controller.
Then, the SDN controller generates flow tables based on the first data packet. More specifically, the SDN controller receives the first data packet, and determines that a destination receiver for the data packets is the host B based on information including five elements such as a destination Media Access Control (MAC) address, a destination Internet Protocol (IP) address, and so forth. When position information of the host B is stored in the SDN controller, the SDN controller calculates an end-to-end flow table from the host A to the host B, and distributes the end-to-end flow table to the OF switch device 3 on the path. When position information of the host B is not stored in the SDN controller, the SDN controller broadcasts an Address Resolution Protocol (ARP) message in the SDN to search for the host B. In response to the ARP message, the OF switch device 3 feeds back to the SDN controller. The SDN controller generates the flow tables hop by hop based on the topology information, i.e. the SDN controller generates a flow table for the OF switch device 1 based on a hop from a port corresponding to the host A to a port of the OF switch device 2, a flow table for the OF switch device 2 based on a hop from a port corresponding to the OF switch device 1 to a port of the OF switch device 3, and a flow table for the OF switch device 3 based on a hop from a port corresponding to the OF switch device 2 to a port of host B, and distributes these three flow tables to the OF switch devices 1, 2 and 3 respectively.
However, in the above mechanism for reporting the packet_in packet, the switch devices transmit a large number of packet_in packets to the SDN controller, so that a performance of the SDN controller deteriorates and a size of the SDN has to be reduced.
Furthermore, in the process of broadcasting the ARP messages in the SDN by the SDN controller, the SDN controller may generates a lot of broadcasting messages, so that the network resources are wasted, availability of the network resources and the controller resources are reduced, and the size of the SDN has to be reduced.
In addition, in the conventional SDN architecture, a resource pool management system produced by Openstack, VMWare, Microsoft, Citrix and so forth in a cloud computing data center is divorced from a data center network. For example, information on creating, modifying or deleting a host in the resource pool cannot be transmitted to the SDN.